
var app = getApp();
var Request = app.modules['Request'];
var Logger = app.modules['Logger'];

function Model(endpoint){
    this._endpoint = endpoint;
}

function print_data(data){
    for (var key in data) {
        if (data[key].constructor != Function && key.indexOf('_') != 0) {
            Logger.debug(key + ":" + data[key]);
        }
    }
}

/**
 * 创建数据
 * 方法:POST
 */
Model.prototype.create = function(data){
    Logger.debug('POST to '+this._endpoint);
    print_data(data);
    return Request.post(this._endpoint,data);
    
}


/**
 * 更新数据
 * 方法:PUT
 */
Model.prototype.update = function(id,data){
    var endpoint = this._endpoint + '/' + id;
    Logger.debug('PUT to ' + endpoint);
    print_data(data);
    return Request.put(endpoint,data);
}

/**
 * 关键字模糊查询
 * 方法:GET
 * @param string search 模糊查找的关键字
 */
Model.prototype.find = function(search){

}

/**
 * 根据ID获取单条记录
 * 方法:GET
 * @param int id 主键id
 */
Model.prototype.get = function(id){

}

/**
 * 根据提供的模型匹配查询
 * 方法:GET
 * @param object refer 参考的对象模型
 */
Model.prototype.match = function(refer){

}
/**
 * 删除数据
 * 方法:DELETE
 * @param int id 模型主键id
 */
Model.prototype.remove = function(id){
    var endpoint = this._endpoint + '/' + id;
    Logger.debug('DELETE to ' + endpoint);
    return Request.remove(endpoint);
}

module.exports = {
    refer:Model,
    init:function(endpoint){
        return new Model(endpoint);
    }
};